//======================================================================
//文件名称：gpio.h
//功能概要：GPIO底层驱动构件头文件
//芯片类型：STC89C52
//版权所有：HCIT-SMh
//版本更新：2020-02-20  V1.0
//======================================================================
#ifndef  _GPIO_H        //防止重复定义（开头)
#define  _GPIO_H

//1.文件包含
#include "common.h"   //包含公共要素头文件

//2.宏定义
//(1)端口号地址偏移量宏定义，采用左移8位是使端口号位于port_pin变量的高4位
#define PORT_0    (0<<4)
#define PORT_1    (1<<4)
#define PORT_2    (2<<4)
#define PORT_3    (3<<4)

//3.对外接口函数声明
//=======================================================================
//函数名称：gpio_pin_set
//函数功能：设置指定引脚的输出状态
//函数参数：port_pin：(端口号)|(引脚号)（例：PORT_1|5 表示P1.5引脚）
//          state：希望设置的端口引脚状态（0为低电平，1为高电平）
//函数返回：无
//=======================================================================
void gpio_pin_set(uint_8 port_pin, bit state);

//=======================================================================
//函数名称：gpio_pin_get
//函数功能：获取指定引脚的输入状态
//函数参数：port_pin：(端口号)|(引脚号)（例：PORT_1|5 表示P1.5引脚）
//函数返回：指定端口引脚的状态（1或0）
//=======================================================================
bit gpio_pin_get(uint_8 port_pin);

//=======================================================================
//函数名称：gpio_reverse
//函数功能：反转指定引脚的状态
//函数参数：port_pin：(端口号)|(引脚号)（例：PORT_1|5 表示P1.5引脚）
//函数返回：无
//=======================================================================
void gpio_pin_reverse(uint_8 port_pin);

//=======================================================================
//函数名称：gpio_port_set
//函数功能：设置指定端口的输出状态
//函数参数：port：端口号（例：PORT_1表示P1端口）
//          state：希望设置的端口状态
//函数返回：无
//=======================================================================
void gpio_port_set(uint_8 port, uint_8 state);

//=======================================================================
//函数名称：gpio_port_get
//函数功能：获取指定端口的输入状态
//函数参数：port：端口号（例：PORT_1表示P1端口）
//函数返回：指定端口的状态
//=======================================================================
uint_8 gpio_port_get(uint_8 port);

#endif     //防止重复定义（结尾)
//=======================================================================
